/****************************************
 *  Project： 队列操作
 *  Function: 循环队列就是队列头尾相接的顺序存储结构
 *  Description: 数组未满时都可以插入新的对尾元素
 *  Author: coder-itl
 ****************************************
 *  Copyright 2021/10/13 by coder-itl
 ****************************************/

#ifndef SEQQUEUE_H_INCLUDED
#define SEQQUEUE_H_INCLUDED

#include "Element.h"


/**
 * 初始化队列
 * @param seqQueue
 */
void InitSeqQue(SeqQueue *seqQueue);

/**
 * 判断队列是否为空
 * @param seqQueue
 * @return 返回 TRUE | FALSE
 */
State IsSeqQueueEmpty(SeqQueue *seqQueue);

/**
 * 判断队列是否已满
 * @param seqQueue
 * @return 返回 TRUE | FALSE
 */
State IsSeqQueFull(SeqQueue *seqQueue);

/**
 * 入队操作
 * @param seqQueue
 * @param element
 * @return 返回 STATE_OK | STATE_FAIL
 */
State EnterSeqQueue(SeqQueue *seqQueue, ElementType element);


/**
 * 出队操作
 * @param seqQueue
 * @param element
 * @return 返回 STATE_OK | STATE_FAIL
 */
State OutSeqQueue(SeqQueue *seqQueue, ElementType *element);


int GetHead(SeqQueue *seqQueue, ElementType *element);//取对头元素

#endif // SEQQUEUE_H_INCLUDED
